getArtCate()
function getArtCate() {
    axios.get('/my/article/cates')
        .then(({ data: { data } }) => {
            console.log(data)
            let htmlStr = data
            const str = htmlStr.map(({ name, alias, Id }) => {
                return ` 
            <tr>
              <td>${name}</td>
              <td>${alias}</td>
              <td>
                <button type="button" class="layui-btn layui-btn-xs btn_edit" data-id='${Id}'>编辑</button>
                <button type="button" class="layui-btn layui-btn-xs layui-btn-danger btn_delete" data-id='${Id}'>删除</button>
              </td>
            </tr>
          `
            }).join('')
            $('#tbody').html(str)

        })
}


// ======================添加（弹出）======================
const layer = layui.layer
const form = layui.form;
// 编辑的form表单DOM结构
let addFormStr = `
<form  id="addForm" class="layui-form"  lay-filter="addForm">
<!-- 第一行 分类名称 -->
<div class="layui-form-item">
  <label class="layui-form-label">分类名称</label>
  <div class="layui-input-block">
    <input type="text" name="name" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
      class="layui-input">
  </div>
</div>
<!-- 第二行 分类别名  -->
<div class="layui-form-item">
  <label class="layui-form-label">分类别名</label>
  <div class="layui-input-block">
    <input type="text" name="alias" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
      class="layui-input">
  </div>
</div>
<!-- 第三行 按钮 -->
<div class="layui-form-item">
  <div class="layui-input-block">
    <button class="layui-btn" lay-submit lay-filter="formDemo">确认添加</button>
    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  </div>
</div>
</form>`
let index
$('#btnAddCate').click(function () {

    index = layer.open({
        content: addFormStr, // 内容
        type: 1, // 层的类型，1表示页面层
        title: '添加文章类别', // 标题
        area: ['500px', '250px'] // 宽度高度
    });
    //拿到的index是一个重要的凭据，它是诸如layer.close(index)等方法的必传参数。       
})
// 由于编辑按钮是动态创建的，需要注册事件委托
$("body").on("submit", "#addForm", function (e) {
    e.preventDefault();

    // 获取到表单数据
    let data = $(this).serialize();

    axios.post("/my/article/addcates", data).then((res) => {
        if (res.data.status !== 0) {
            // 失败
            return layer.msg("新增文章分类失败");
        }

        // 成功
        // 1. 弹框提示
        layer.msg("新增文章分类成功");

        // 2. 关闭弹出层
        layer.close(index);

        // 3. 重新发送ajax，获取所有的分类数据
        getArtCate();
    });
});


// ======================编辑（弹出）======================
let bianjiForm = `
<form  id="editForm" class="layui-form" lay-filter="editForm">
<!-- id -->
<div class="layui-form-item layui-hide">
  <label class="layui-form-label">分类名称</label>
  <div class="layui-input-block">
    <input type="text" name="Id" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
      class="layui-input">
  </div>
</div>
<!-- 第一行 分类名称 -->
<div class="layui-form-item">
  <label class="layui-form-label">分类名称</label>
  <div class="layui-input-block">
    <input type="text" name="name" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
      class="layui-input">
  </div>
</div>
<!-- 第二行 分类别名  -->
<div class="layui-form-item">
  <label class="layui-form-label">分类别名</label>
  <div class="layui-input-block">
    <input type="text" name="alias" required lay-verify="required" placeholder="请输入标题" autocomplete="off"
      class="layui-input">
  </div>
</div>
<!-- 第三行 按钮 -->
<div class="layui-form-item">
  <div class="layui-input-block">
    <button class="layui-btn" lay-submit lay-filter="formDemo">确认修改</button>
  </div>
</div>
</form>
`

let indexianji
$('#tbody').on('click', '.btn_edit', function () {
    const Id = $(this).attr('data-id')
    console.log(Id);
    axios.get("/my/article/cates/" + Id)
        .then((res) => {
            console.log(res)

            //formTest 即 class="layui-form" 所在元素属性 lay-filter="" 对应的值
            form.val("editForm", res.data.data);

        })

    indexianji = layer.open({
        content: bianjiForm, // 内容
        type: 1, // 层的类型，1表示页面层
        title: '修改文章类别', // 标题
        area: ['500px', '250px'] // 宽度高度
    });
})

// ======================= 完整确认修改 - 实现编辑功能 =======================
$("body").on("submit", "#editForm", function (e) {
    e.preventDefault();

    // 获取表单数据
    let data = $(this).serialize();
    console.log(data);
    // 发送ajax请求
    axios.post("/my/article/updatecate", data).then((res) => {
        console.log(res);
        if (res.data.status !== 0) {
            return layer.msg("更新失败");
        }

        // 1. 弹框提示
        layer.msg("更新分类数据成功");

        // 2. 关闭弹出层layer.open
        layer.close(indexianji);

        // 3. 重新发送ajax获取最新分类数据
        getArtCate();
    });
});

// ====================  点击删除，完成删除功能 ====================
$('body').on('click', '.btn_delete', function () {
    const Id = $(this).attr('data-id')

    layer.confirm('确定删除吗?', { icon: 3, title: '提示' }, function (index) {
        //do something

        axios.get(`/my/article/deletecate/${Id}
       `)
            .then(res => {
                console.log(res)
                if (res.data.status !== 0) {
                    // 删除失败
                    return layer.msg("删除文章分类失败");
                }

                // 删除成功
                layer.msg("删除文章分类成功");

                layer.close(index);

                // 发送ajax请求
                getArtCate();
            })

    });
})
